iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
Modern Web

PHP 新手自學筆記系列 第 6

【Day 6】運算子符號詳細筆記

  • 分享至 

  • xImage
  •  
類型 運算子 說明
算術運算子 + - * / % ** 加、減、乘、除、取餘數、次方
字串運算子 . 字串串接
賦值運算子 = += -= *= .= 指派值給變數,或結合運算
比較運算子 == === != !== < > <= >= 比較值或型別
邏輯運算子 && || ! AND 、OR 、NOT
增減運算子 ++ -- 遞增、遞減
三元運算子 ?: 簡單條件判斷
合併運算子 ?? null 合併運算子

在開始前先講一下PHP有2個印出方式 echo和var_dump 今天會用到這2個輸出模式

var_dump 會輸出 值與型別

var_dump(5 !== "5"); // bool(true)

echo 只能輸出 字串或可轉字串的值

echo (5 !== "5");  // 1

算數運算子

這是一個蠻直覺的符號運算,跟以前學的數學基本上一樣,但 % 特別講一下,在程式中很常用,用來取除法的餘數

5 / 2;   // 2.5
5 % 2;   // 1,取餘數

字串運算子

這個符號以前有用過

echo "hello" . " world"; // helloworld

賦值運算子

=

$a = 1; // 把 1 指派給 $a

+=

$a += $b; // 等同 $a = $a + $b

-=

$a -= $b; // 等同 $a = $a - $b

*=

$a *= $b; // 等同 $a = $a * $b

.=

$a .= $b; // 等同 $a = $a . $b,把 $b 接在 $a 後面

比較運算子

== 只比較值是否相等,會自動轉型 (寬鬆比較,有時會出錯)

var_dump(5 == 5); // true 
var_dump(5 == "5"); // true 
var_dump(null == 0); // true (null 轉成 0)

=== 比較值且比較型別(嚴格比較)

var_dump(5 === "5"); // false (型別不同,一個是 int,一個是 string)
var_dump(5 === 5); // true (值相等且型別相同)

!= !代表相反的意思 所以 != 是不相等的意思

var_dump(5 != "5"); //false (寬鬆比較,字串5被轉換為int,所以2個被判斷為相等輸出false)

!==

var_dump(5 !== "5"); // true (型別不同)

< 小於

var_dump(3 < 5); // true

> 大於

var_dump(5 > 3); // true

<= 小於或等於

var_dump(3 <= 3); // true 
var_dump(2 <= 1); // false

>= 大於或等於

var_dump(5 >= 5); // true
var_dump(6 >= 7); // false

邏輯運算子

&& \|\| !
這3個的用法分別是

$a = true;
$b = false;

var_dump($a && $b); // AND -> false
var_dump($a || $b); // OR  -> true
var_dump(!$a);      // NOT -> false

增減運算子

用來讓變數自動加一或減一,可以放在前或後

$a = 5;
$a++; // $a = 6
$a--; // $a = 5

// 前置與後置差別
$b = 5;
echo ++$b; // 6,先增加再使用,$b 變成 6,輸出 6
echo $b;   // 6(因為上一行已經把 $b 改成 6)
echo $b++; // 6,先輸出再增加,輸出 6,然後 $b 變成 7

三元運算子

簡單條件判斷,讓程式更簡潔

$score = 70;
$result = ($score >= 60) ? "及格" : "不及格"; // ?後面放符合條件的輸出, :後面放不符合條件的輸出
echo $result; // 及格

合併運算子

?? 是 null 合併運算子,如果左邊為 null,就取右邊的值:

$name = $_GET['name'] ?? "訪客";
echo $name; // 如果 $_GET['name'] 沒有設定,就輸出 "訪客"

今天把各種運算子詳細整理了一遍,搭配 echo 與 var_dump 也試了一些範例,對算數、比較、邏輯運算有更清楚的概念。明天再用整數和字串做一些練習,確認程式輸出結果。


上一篇
【Day5】資料型別+運算子
下一篇
【Day7】整數+字串 (練習實作)
系列文
PHP 新手自學筆記10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言